<!DOCTYPE html>
<html>
<head>
    <!-- 页面meta -->
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>传智健康</title>
    <meta name="description" content="传智健康">
    <meta name="keywords" content="传智健康">
    <meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
    <!-- 引入样式 -->
    <link rel="stylesheet" href="../css/style.css">
    <script src="../plugins/echarts/echarts.js"></script>
    <link rel="stylesheet" href="../plugins/elementui/index.css">
    <link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css">
</head>
<body class="hold-transition">
<div id="app">
    <div class="content-header">
        <h1>数据统计
            <small>每日预约、到诊数量统计</small>
        </h1>
        <el-breadcrumb separator-class="el-icon-arrow-right" class="breadcrumb">
            <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
            <el-breadcrumb-item>数据统计</el-breadcrumb-item>
            <el-breadcrumb-item>每日预约、到诊数量统计</el-breadcrumb-item>
        </el-breadcrumb>
    </div>
    <template>
        <div class="date-picker">
            <!--
            v-model : 绑定表单
            @change ：绑定一个触发事件
            type : 日期类型
            unlink-panenls : 属性解除联动
            align= 靠左
            range-separator= 中间的字
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            :picker-options= 绑定了一个事件
            -->
            <el-date-picker
                    v-model="detailDate"
                    @change="dateChangebirthday"
                    format="yyyy-MM-dd"
                    type="daterange"
                    align="right"
                    unlink-panels
                    range-separator="至"
                    :start-placeholder="detailDate.start"
                    :end-placeholder="detailDate.end"
                    :picker-options="pickerOptions">
            </el-date-picker>
        </div>
    </template>
    <div class="app-container">
        <template>
            <div class="box">
                <!-- 为 ECharts 准备一个具备大小（宽高）的 DOM -->
                <div id="chart1" style="height:600px;"></div>
            </div>
        </template>
    </div>
</div>
</body>
<!-- 引入组件库 -->
<script src="../js/vue.js"></script>
<script src="../plugins/elementui/index.js"></script>
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script src="../js/axios-0.18.0.js"></script>
<script>
    new Vue({
        el: '#app',
        data: {
            detailDate: [],
            pickerOptions: {
                shortcuts: [{
                    text: '最近一周',
                    onClick(picker) {
                        const end = new Date();
                        const start = new Date();
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
                        picker.$emit('pick', [start, end]);
                    }
                }, {
                    text: '最近一个月',
                    onClick(picker) {
                        const end = new Date();
                        const start = new Date();
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
                        picker.$emit('pick', [start, end]);
                    }
                }, {
                    text: '最近三个月',
                    onClick(picker) {
                        const end = new Date();
                        const start = new Date();
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
                        picker.$emit('pick', [start, end]);
                    }
                }]
            },
        },
        //钩子函数，VUE对象初始化完成后自动执行
        created() {
            this.detailDate[0] = new Date((new Date() - 3600 * 1000 * 24 * 7)).setHours(0),
                this.detailDate[1] = new Date().setHours(0),
                //调用查询方法
                this.dailyAppointment();
        },
        methods: {
            dateChangebirthday(val) {
                this.detailDate.start = val[0];
                this.detailDate.end = val[1];
                this.dailyAppointment();
            },
            dailyAppointment() {
                let val = {
                    start: this.detailDate[0],
                    end: this.detailDate[1]
                }
                axios.post("/statistics/dailyAppointment.do", val).then((res) => {
                    if (res.data.flag) {
                        <!--折线图-->
                        var myChart1 = echarts.init(document.getElementById('chart1'));
                        var option = {
                            title: {
                                text: '每日预约、到诊数量统计'
                            },
                            tooltip: {
                                trigger: 'axis'
                            },
                            toolbox: {
                                show: true,
                                feature: {
                                    dataView: {show: true, readOnly: false},
                                    magicType: {show: true, type: ['line', 'bar']},
                                    restore: {show: true},
                                    saveAsImage: {show: true}
                                }
                            },
                            legend: {
                                data: ['每日预约数', '每日到诊数']
                            },
                            grid: {
                                left: '3%',
                                right:
                                    '4%',
                                bottom:
                                    '3%',
                                containLabel:
                                    true
                            },
                            xAxis: {
                                type: 'category',
                                boundaryGap: false,
                                data: res.data.data.listDate
                            },
                            yAxis: {
                                type: 'value'
                            },
                            series: [
                                {
                                    name: '每日预约数',
                                    type: 'line',
                                    data: res.data.data.orders
                                },
                                {
                                    name: '每日到诊数',
                                    type: 'line',
                                    data: res.data.data.orderStatus
                                }
                            ]
                        }
                        myChart1.setOption(option);
                        this.$message.success(res.data.message);
                    } else {
                        this.$message.error(res.data.message);
                    }
                })
            }
        }
    });
</script>
</html>